package com.tbit.uqbike.client.service;

import com.alibaba.fastjson.JSONObject;
import com.tbit.uqbike.client.pojo.InvoiceRecord;
import com.tbit.uqbike.client.pojo.Result;

import javax.json.JsonObject;
import java.util.List;

public interface AutoInvoiceService {

    /**
     * @description: 自动开票
     * @author: mo.shanyong
     * @date: 2025/4/2 14:27
     * @param: invoiceRecord
     */
    void autoInvoicing(InvoiceRecord invoiceRecord);

    /**
     * @description: 申请红冲
     * @author: mo.shanyong
     * @date: 2025/4/3 13:33
     * @param: invoiceRecord
     */
    void applyRedChong(InvoiceRecord invoiceRecord);

    /**
     * @description: 处理红冲确认单
     * @author: mo.shanyong
     * @date: 2025/4/7 19:47
     * @param: invoiceId 发票id
     * @param: redChongState 红冲确认状态，0-拒绝 1-确认
     */
    void dealRedChong(Integer invoiceId,Integer redChongState);

    /**
     * @description: 发票发送邮件
     * @author: mo.shanyong
     * @date: 2025/4/3 13:35
     * @param: invoiceRecord
     */
    void reSendInvoiceEmail(InvoiceRecord invoiceRecord,String receiveEmail);

    /**
     * @description: 开票异步回调
     * @author: mo.shanyong
     * @date: 2025/4/3 13:43
     * @param: notifyBody
     */
    void invoiceNotify(String notifyBody);
    /**
     * @description: 联想企业发票抬头
     * @author: mo.shanyong
     * @date: 2025/4/3 13:54
     * @param: companyName 输入的名字
     * @param: brandId 品牌id
     */
    List<JSONObject> associateCompany(String companyName, Integer brandId);

    /**
     * @description: 自动重新生成发票
     * @author: mo.shanyong
     * @date: 2025/5/30 9:54
     * @param: invoiceId
     */
    void reAutoInvoicing(Integer invoiceId);
}
